/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import generica.Generica;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.hibernate.annotations.ManyToAny;

/**
 *
 * @author calandreli
 */
@Entity
@Table(name = "processo")
@SequenceGenerator(name = "processo_seq", sequenceName = "id_Processo", allocationSize = 1)
public class Processo implements Generica {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "processo_seq")
    @Column(name = "id_Processo")
    private int id_Processo;
    @Temporal(TemporalType.DATE)
    @Column(name = "data")
    private Calendar data;
    @Column(name = "numeroProcesso")
    private String numeroProcesso;
    @Column(name = "interessado")
    private String interessado;
    @OneToOne
    @JoinColumn(name = "documento")
    private Documento documento;
    @ManyToOne
    @JoinColumn(name = "assunto")
    private Assunto assunto;
    @Column(name = "complemento")
    private String complemento;
    @Column(name = "valor")
    private Double valor;
    @Column(name = "mes")
    private String mes;
    @Column(name = "ano")
    private int ano;
    @Column(name = "qtdDocumento")
    private int qtdDoc;
    @ManyToOne
    @JoinColumn(name = "setor")
    private Setor setor;

    public Setor getSetor() {
        return setor;
    }

    public void setSetor(Setor setor) {
        this.setor = setor;
    }

    public int getId_Processo() {
        return id_Processo;
    }

    public void setId_Processo(int id_Processo) {
        this.id_Processo = id_Processo;
    }

    public Calendar getData() {
        return data;
    }

    public void setData(Calendar data) {
        this.data = data;
    }

    public String getInteressado() {
        return interessado;
    }

    public void setInteressado(String interessado) {
        this.interessado = interessado;
    }

    public Documento getDocumento() {
        return documento;
    }

    public void setDocumento(Documento documento) {
        this.documento = documento;
    }

    public Assunto getAssunto() {
        return assunto;
    }

    public void setAssunto(Assunto assunto) {
        this.assunto = assunto;
    }

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public Double getValor() {
        return valor;
    }

    public void setValor(Double valor) {
        this.valor = valor;
    }

    public String getMes() {
        return mes;
    }

    public void setMes(String mes) {
        this.mes = mes;
    }

    public int getAno() {
        return ano;
    }

    public void setAno(int ano) {
        this.ano = ano;
    }

    public int getQtdDoc() {
        return qtdDoc;
    }

    public void setQtdDoc(int qtdDoc) {
        this.qtdDoc = qtdDoc;
    }

    public String getNumeroProcesso() {
        return numeroProcesso;
    }

    public void setNumeroProcesso(String numeroProcesso) {
        this.numeroProcesso = numeroProcesso;
    }

    @Override
    public Serializable getIdentificador() {
        return this.id_Processo;
    }

    @Override
    public String toString() {
        return "Processo{" + "id_Processo=" + id_Processo + ", valor=" + valor + '}';
    }

}
